# -*- coding:utf-8 -*-
# title           :
# description     :
# author          :Python超人/三月三提供
# date            :2024-08-07
# link            :https://gitcode.net/pythoncr/
# python_version  :3.9
# ==============================================================================
from 神笔码靓.神笔库 import 神笔模板, 神笔绘图板
from 神笔码靓.神笔库.定义集 import *


class 太极图神笔模板(神笔模板):
    def 模板ID(self):
        return "太极图"

    def 元素列表(self):
        半径 = self.获取参数("半径", 100)
        描边宽度 = self.获取参数("描边宽度", 1)
        描边颜色 = self.获取参数("描边颜色", 颜色.黑色)
        描边位移 = 描边宽度 / 2
        阴颜色 = self.获取参数("阴颜色", 颜色.黑色)
        阳颜色 = self.获取参数("阳颜色", 颜色.白色)
        # 白色：代表阳，象征着光明、活力和积极的力量。白色半圆位于上方，表示天、天堂、天之道。
        # 黑色：代表阴，象征着黑暗、静寂和消极的力量。黑色半圆位于下方，表示地、地面、地之道。

        阳路径点列表 = [("移动", 半径 + 描边位移, 描边位移),
                  ("椭圆弧线", 半径 / 2, 半径 / 2, 0, 0, 1, 半径 + 描边位移, 半径 + 描边位移),
                  ("椭圆弧线", 半径 / 2, 半径 / 2, 0, 0, 0, 半径 + 描边位移, 2 * 半径 + 描边位移),
                  ("椭圆弧线", 半径, 半径, 0, 0, 1, 半径 + 描边位移, 描边位移),
                  ("闭合",)]

        阴路径点列表 = [("移动", 半径 + 描边位移, 2 * 半径 + 描边位移),
                  ("椭圆弧线", 半径 / 2, 半径 / 2, 0, 0, 1, 半径 + 描边位移, 半径 + 描边位移),
                  ("椭圆弧线", 半径 / 2, 半径 / 2, 0, 0, 0, 半径 + 描边位移, 描边位移),
                  ("椭圆弧线", 半径 / 2, 半径 / 2, 0, 0, 1, 半径 + 描边位移, 2 * 半径 + 描边位移),
                  ("闭合",)]

        self.设置返回值("中心点", (半径 + 描边位移, 半径 + 描边位移))

        阴鱼眼 = self.绘图板.画圆(x=半径 + 描边位移, y=半径 / 2 + 描边位移, 半径=半径 / 6, 填充颜色=阴颜色, 描边宽度=0)
        阳鱼眼 = self.绘图板.画圆(x=半径 + 描边位移, y=半径 * 1.5 + 描边位移, 半径=半径 / 6, 填充颜色=阳颜色, 描边宽度=0)

        阳路径 = self.绘图板.连线(路径点列表=阳路径点列表, 填充颜色=阳颜色, 描边宽度=描边宽度, 描边颜色=描边颜色)
        阴路径 = self.绘图板.连线(路径点列表=阴路径点列表, 填充颜色=阴颜色, 描边宽度=描边宽度, 描边颜色=描边颜色)

        return [阴路径, 阳路径, 阴鱼眼, 阳鱼眼]


if __name__ == '__main__':
    神笔 = 神笔绘图板(作品文件路径="太极图", 高=400, 宽=400)
    神笔.显示图框(边框颜色=颜色.红色)
    太极图模板 = 神笔.神笔模板("太极图", 半径=100, 描边宽度=1, 描边颜色=颜色.红色, 阴颜色=颜色.红色, 阳颜色=颜色.白色)
    太极图中心点 = 太极图模板.神笔模板返回值["中心点"]
    cx, cy = 0, 0
    旋转中心点 = 太极图中心点[0] + cx, 太极图中心点[1] + cy
    太极图 = 太极图模板.创造元素(x=cx, y=cy).旋转动画(结束角=360, 起始旋转中心点=旋转中心点)
    神笔.创建组合(样式串="transform:translate(100px, 100px);", 元素列表=[太极图])
    神笔.完成()
